package main.java.sokoban;

/**
 * #: 墙
 * P: 玩家
 * B: 箱子
 * G: 目标点
 * empty: 地板
 * *:背景
 * O:箱子在目标点上
 * Q: 玩家在目标点上
 */

public class LevelManager {
    public static char[][] getLevel(int level) {
        switch (level) {
            case 1:
                return new char[][] {
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','*','*','#','#','#','*','*'},
                        {'*','*','#','#','#','G','#','*','*'},
                        {'*','*','#','G','B','B','#','#','*'},
                        {'*','#','#','#','P','B','G','#','*'},
                        {'*','#','G','B','B','#','#','#','*'},
                        {'*','#','#','B','G','#','*','*','*'},
                        {'*','*','#','G','#','#','*','*','*'},
                        {'*','*','#','#','#','*','*','*','*'},
                        {'*','*','*','*','*','*','*','*','*'}
                };
            case 2:
                return new char[][] {
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','#','#','#','#','#','#','*'},
                        {'*','*','#','P',' ',' ',' ','#','*'},
                        {'*','*','#',' ','B','O',' ','#','*'},
                        {'*','*','#',' ','B','G',' ','#','*'},
                        {'*','*','#',' ','B','G',' ','#','*'},
                        {'*','*','#',' ','O','G',' ','#','*'},
                        {'*','*','#',' ',' ',' ',' ','#','*'},
                        {'*','*','#','#','#','#','#','#','*'},
                        {'*','*','*','*','*','*','*','*','*'}
                };
            case 3:
                return new char[][] {
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','#','#','#','#','#','*','*'},
                        {'*','*','#','G',' ','P','#','*','*'},
                        {'*','*','#','G','B',' ','#','*','*'},
                        {'*','*','#',' ','B',' ','#','*','*'},
                        {'*','*','#',' ','B','G','#','*','*'},
                        {'*','*','#','#','#','#','#','*','*'},
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','*','*','*','*','*','*','*'}
                };
            case 4:
                return new char[][] {
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','*','*','#','#','#','#','*'},
                        {'*','*','#','#','#',' ','G','#','*'},
                        {'*','*','#',' ','B',' ','G','#','*'},
                        {'*','*','#',' ','P','B',' ','#','*'},
                        {'*','*','#','#',' ',' ','#','#','*'},
                        {'*','*','*','#','#','#','#','*','*'},
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','*','*','*','*','*','*','*'}
                };
            case 5:
                return new char[][] {
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','#','#','#','#','#','*','*'},
                        {'*','*','#','G',' ','G','#','*','*'},
                        {'*','*','#',' ','B',' ','#','*','*'},
                        {'*','*','#',' ','B',' ','#','*','*'},
                        {'*','*','#',' ','B',' ','#','*','*'},
                        {'*','*','#',' ','B',' ','#','*','*'},
                        {'*','*','#','G','P','G','#','*','*'},
                        {'*','*','#','#','#','#','#','*','*'},
                        {'*','*','*','*','*','*','*','*','*'}
                };
            case 6:
                return new char[][] {
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','#','#','#','#','#','*','*'},
                        {'*','*','#','G','O','G','#','*','*'},
                        {'*','*','#',' ','B',' ','#','*','*'},
                        {'*','*','#','P','B',' ','#','*','*'},
                        {'*','*','#',' ','B',' ','#','*','*'},
                        {'*','*','#',' ','B',' ','#','*','*'},
                        {'*','*','#','G','O','G','#','*','*'},
                        {'*','*','#','#','#','#','#','*','*'},
                        {'*','*','*','*','*','*','*','*','*'}
                };
            case 7:
                return new char[][] {
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','*','#','#','#','#','*','*'},
                        {'*','*','*','#','G',' ','#','#','*'},
                        {'*','*','#','#','B','P','G','#','*'},
                        {'*','*','#',' ','B','B',' ','#','*'},
                        {'*','*','#',' ','G','B',' ','#','*'},
                        {'*','*','#',' ','G',' ',' ','#','*'},
                        {'*','*','#','#','#','#','#','#','*'},
                        {'*','*','*','*','*','*','*','*','*'}
                };
            case 8:
                return new char[][] {
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','*','#','#','#','#','#','*'},
                        {'*','*','#','#',' ',' ',' ','#','*'},
                        {'*','*','#','P','B','O',' ','#','*'},
                        {'*','*','#',' ','B','G',' ','#','*'},
                        {'*','*','#',' ','B','G',' ','#','*'},
                        {'*','*','#',' ','O','G',' ','#','*'},
                        {'*','*','#','#',' ',' ',' ','#','*'},
                        {'*','*','*','#','#','#','#','#','*'},
                        {'*','*','*','*','*','*','*','*','*'}
                };
            case 9:
                return new char[][] {
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','#','#','#','*','*','*','*'},
                        {'*','*','#','G','#','#','#','#','*'},
                        {'*','*','#',' ','B',' ','G','#','*'},
                        {'*','*','#',' ','B','B','P','#','*'},
                        {'*','*','#',' ','B',' ',' ','#','*'},
                        {'*','*','#','G','#','#','#','#','*'},
                        {'*','*','#','#','#','*','*','*','*'},
                        {'*','*','*','*','*','*','*','*','*'}
                };
            case 10:
                return new char[][] {
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','*','*','*','*','*','*','*'},
                        {'*','*','*','*','#','#','#','#','*'},
                        {'*','*','#','#','#',' ',' ','#','*'},
                        {'*','*','#',' ',' ','B','G','#','*'},
                        {'*','*','#',' ',' ','B','Q','#','*'},
                        {'*','*','#',' ',' ','B','G','#','*'},
                        {'*','*','#','#','#',' ',' ','#','*'},
                        {'*','*','*','*','#','#','#','#','*'},
                        {'*','*','*','*','*','*','*','*','*'}
                };
            default:
                return null;
        }
    }
}